// 内存数据库
const db = [
  {
    "id": 0,
    "username": "1709A-金奕成",
    "password": 123
  }
]

const { 
  getList,
  addItem,
  updateItem,
  deleteItem
} = require('../model/user')

// 类 + 类方法的形式去编写控制器
class UserControl {
  // 增 删 改 查
  async find(ctx, next) {
    const data = await getList()
    ctx.body = data;
  }

  async findById(ctx, next) {
    ctx.body = db[ctx.params.id * 1]
  }

  async addUser(ctx, next) {
    console.log(ctx.request.body, '----')
    try {
      const data = await addItem({...ctx.request.body})
      ctx.body = data
    } catch(err) {
      // ctx.throw(500, '数据库报错了')
    }
  }

  async updateById(ctx, next) {
    // 动态路由的参数如何解析 ctx.params.id 
    // put 也是使用ctx.request.body
    db[ctx.params.id * 1] = ctx.request.body;
    ctx.body = db[ctx.params.id * 1]
  }

  async deleteById(ctx, next) {
    db.splice(ctx.params.id * 1, 1)
    ctx.status = 204; // 设置状态码 为204 （no content）
  }
}

module.exports = new UserControl()
